// 导入API接口
import {API} from "@/api/NewAxiosAPI";
// 导入响应和用户类型定义
import type {ResponseInterface, UserInterface} from "@/type/models";

/**
 * 获取用户信息的API调用
 * @param token 用户的认证令牌
 * @returns 返回从API获取的用户信息
 */
export async function getUserInfoAPI(token: string) {
    // 使用提供的token进行认证，并请求用户信息
    const r:ResponseInterface = await API({
        url:"/user/info",
        method:"GET",
        headers:{
            "Authorization":token
        }
    })
    return r.data;
}

/**
 * 更新用户密码的API调用
 * @param token 用户的认证令牌
 * @param oldPassword 用户的旧密码
 * @param newPassword 用户的新密码
 * @returns 返回从API获取的更新结果
 */
export async function updatePasswordAPI(token: string, oldPassword: string, newPassword: string){
    // 提供旧密码和新密码，使用token更新用户密码
    const r:ResponseInterface = await API({
        url:"/user/info/update/password",
        method:"POST",
        headers:{
            "Authorization":token
        },
        data:{
            oldPassword:oldPassword,
            newPassword:newPassword
        }
    })
    return r.data;
}

/**
 * 更新用户信息的API调用
 * @param token 用户的认证令牌
 * @param user 包含用户信息的对象
 * @returns 返回从API获取的更新结果
 */
export async function updateUserInfoAPI(token: string, user:UserInterface){
    // 使用提供的用户信息对象，使用token更新用户信息
    const r:ResponseInterface = await API({
        url:"/user/info/update",
        method:"POST",
        headers:{
            "Authorization":token
        },
        data:user
    })
    return r.data;
}
